package com.ruoyi.workbench.service;

import com.ruoyi.workbench.domain.WbLeafUnit;
import com.ruoyi.workbench.domain.WbWholeUnit;

import java.util.List;

/**
 * 叶子单元Service接口
 *
 * @author hanjiafeng
 * @date 2021-02-24
 */
public interface IWbLeafUnitService {
    /**
     * 查询叶子单元
     *
     * @param unitId 叶子单元ID
     * @return 所辖村庄
     */
    WbLeafUnit selectWbLeafUnitById(Long unitId);

    /**
     * 查询叶子单元
     *
     * @param unitId 叶子单元ID
     * @return 所辖村庄
     */
    WbWholeUnit selectWbWholeUnitById(Long unitId);

    /**
     * 查询渠道全部单元
     *
     * @param unitId unitId
     * @return 单元
     */
    WbWholeUnit selectChannelWbWholeUnitById(Long unitId);

    /**
     * 查询叶子单元列表
     *
     * @param wbLeafUnit 所辖村庄
     * @return 叶子单元集合
     */
    List<WbLeafUnit> selectWbLeafUnitList(WbLeafUnit wbLeafUnit);

    /**
     * 查询节点
     *
     * @param wholeUnit wbLeafUnit
     * @return 叶子节点集合
     */
    List<WbWholeUnit> selectWbWholeUnitList(WbWholeUnit wholeUnit);

    /**
     * 新增叶子单元
     *
     * @param wbLeafUnit 所辖村庄
     * @return 结果
     */
    int insertWbLeafUnit(WbLeafUnit wbLeafUnit);

    /**
     * 修改叶子单元
     *
     * @param wbLeafUnit 所辖村庄
     * @return 结果
     */
    int updateWbLeafUnit(WbLeafUnit wbLeafUnit);

    /**
     * 批量删除叶子单元
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    int deleteWbLeafUnitByIds(String ids);

    /**
     * 删除叶子单元信息
     *
     * @param unitId 叶子单元ID
     * @return 结果
     */
    int deleteWbLeafUnitById(Long unitId);

    /**
     * 根据部门id查找所有子节点
     *
     * @param parentId 部门id
     * @return 子节点
     */
    List<WbLeafUnit> selectChildrenUnitByParentId(Long parentId);
}
